import random
import time
start_time = time.time()
list1 = []



def mul():#乘法运算
    opo_list = list1
    a = opo_list[0]
    b = opo_list[1]
    c = opo_list[2]
    d = opo_list[3]
    print(opo_list)
    index = 0#index初始化
    if index == 0 and int(a)*int(b)*int(c)*int(d) == 24:#先算A*B*C*D
        print(a, "*", b, "*", c, "*", d, "=24")
        index = 1
    if index == 0:
        #AB*C
        for count in range(120):
            r1 = random.randint(0, 3)
            a1 = int(opo_list[r1])
            opo_list.pop(r1)
            # print(opo_list)
            r2 = random.randint(0, 2)
            a2 = int(opo_list[r2])
            opo_list.pop(r2)
            sum1 = a1*10+a2
            r3 = random.randint(0, 1)
            a3 = int(opo_list[r3])
            print(a1, a2, "*", a3)
            # time.sleep(0.5)
            if sum1*a3 == 24:
                print(a1, a2, "*", a3, "=24")
                index = 1
                break
            opo_list = [a, b, c, d]
        opo_list = [a, b, c, d]

    if index == 0:
        #A*B
        for count in range(120):
            r1 = random.randint(0, 3)
            a1 = int(opo_list[r1])
            opo_list.pop(r1)
            # print(opo_list)
            r2 = random.randint(0, 2)
            a2 = int(opo_list[r2])
            opo_list.pop(r2)
            if a1*a2 == 24:
                index = 1
                print(a1, "*", a2, "=24")
                break
            opo_list = [a, b, c, d]
    if index == 0:
        #A*B*C
        for count in range(130):
            r1 = random.randint(0, 3)
            a1 = int(opo_list[r1])
            opo_list.pop(r1)
            # print(opo_list)
            r2 = random.randint(0, 2)
            a2 = int(opo_list[r2])
            opo_list.pop(r2)
            a3 = int(opo_list[r3])
            opo_list.pop(r3)
            a4 = int(opo_list[0])
            print(a1, "*", a2, "*", a3)
            if a1*a2*a3 == 24:
                index = 1
                print(a1, "*", a2, "*", a3, "=24")
                break
            opo_list = [a, b, c, d]
        if index == 0:
            print(a1, "*", a2, "*", a3, "*", a4, "=24")


def div():
    opo_list = list1
    a = opo_list[0]
    b = opo_list[1]
    c = opo_list[2]
    d = opo_list[3]
    print(opo_list)
    index = 0
    if index == 0:
        #AB/C
        for count in range(120):
            r1 = random.randint(0, 3)
            a1 = int(opo_list[r1])
            opo_list.pop(r1)
            # print(opo_list)
            r2 = random.randint(0, 2)
            a2 = int(opo_list[r2])
            opo_list.pop(r2)
            sum1 = a1*10+a2
            r3 = random.randint(0, 1)
            a3 = int(opo_list[r3])
            print(a1, a2, "/", a3)
            # time.sleep(0.5)

            if a3 != 0 and sum1/a3 == 24:
                print(a1, a2, "/", a3, "=24")
                index = 1
                break
            opo_list = [a, b, c, d]
        opo_list = [a, b, c, d]
    
    if index == 0:
        for count in range(500):
            r1 = random.randint(0, 3)
            a1 = int(opo_list[r1])
            opo_list.pop(r1)
            r2 = random.randint(0, 2)
            a2 = int(opo_list[r2])
            opo_list.pop(r2)
            a3 = int(opo_list[r3])
            opo_list.pop(r3)
            a4 = int(opo_list[0])
            sum2 = a1 * 100 + a2*10+a3
            print(a1, a2,  a3, "/", a4)
            if sum2 / a4 == 24:
                index = 1
                print(a1, a2,  a3, "/",a4,"=24")
                break
            opo_list = [a, b, c, d]
        opo_list = [a, b, c, d]

#["/", "4", "8", "2", "0"]
#["*","2","2","2","3"]
#["*","4","2","8","6"]


list1 = ["*", "2", "2", "2", "3"]
s = list1[0]
list1.pop(0)
if s == "*":
    mul()
elif s == "/":
    div()
end_time = time.time()
sum_time = end_time-start_time
print(sum_time)
